import { useMysql } from '../mysql/index.js';
import { MysqlQueryBuilder } from '../mysql/mysql-query-builder.js';
/**
 * 根据jsonName查询对应的jsonData
 * @param {string} jsonName - 要查询的jsonName
 * @returns {Promise<Object>} 解析后的JSON对象
 */
export async function getJsonDataByName(jsonName) {
    const sql = MysqlQueryBuilder.select(
      'json',
      ['jsonData'],
      { jsonName: jsonName }
    );
    try {
        const results = await useMysql(sql, [jsonName]);

        if (results.length === 0) {
            throw new Error(`未找到 jsonName 为 ${jsonName} 的数据`);
        }
        // mysql2会自动解析 JSON 字段,不能使用JSON.parse
        return results[0].jsonData;
    } catch (err) {
        console.error(`查询JSON数据失败: ${err.message}`);
        throw err; // 继续向上抛出错误
    }
}
export const JsonData = async (req, res) => {
    try {
        const { jsonName } = req.query;
        if (!jsonName || typeof jsonName !== 'string') {
          return res.status(400).json({ error: 'jsonName 参数无效' });
        }
        if (!jsonName) {
          return res.status(400).json({ 
            error: '缺少必要参数: jsonName' 
          });
        }
        const jsonData = await getJsonDataByName(jsonName);
        res.json(jsonData);
        
      } catch (err) {
        res.status(404).json({ 
          error: err.message || '获取数据失败' 
        });
      }
}
